package com.party.core.service.wechatPlatform;

import com.party.core.model.wechatPlatform.WechatOpenMember;
import com.party.core.service.IBaseService;

import java.util.List;

/**
 * @Author: Administrator.
 * @Description: 微信授权管理授权信息
 * @Date:Created in 2017/8/26 0026 下午 14:30.
 */
public interface IWechatOpenMemberService extends IBaseService<WechatOpenMember> {

    /**
     * 获取机构绑定的公众号信息
     * 如果机构id为子账号，则获取父账号的公众号信息
     *
     * @param memberId 机构id
     * @return
     * @author yifeng
     * @date 16:04 2019/9/19
     **/
    WechatOpenMember findByMemberId(String memberId);

    /**
     * 根据appid查询
     * @param appid appid
     * @return 商户授权信息
     */
    WechatOpenMember findByAppid(String appid);

    /**
     * 用户是否授权
     * @param memberId 会员编号
     * @return 是否授权（true/false）
     */
    boolean isAuthorize(String memberId);

    /**
     * 获取系统配置
     *
     * @return 系统配置
     */
    WechatOpenMember getSystem();

    /**
     * 根据appid 和填写配置查询
     * @param appId appid
     * @param deployType 填写配置
     * @return 微信账号
     */
    WechatOpenMember findByAppidAndDeployType(String appId, Integer deployType);

    List<WechatOpenMember> listNoRelation(Integer deployType, String memberId);

    /**
     * 根据type获取配置
     *
     * @param type 类型
     * @return
     */
    WechatOpenMember findByType(String type);

    /**
     * 根据memberId,和deployType获取
     * @param memberId
     * @param deployType 类型
     * @return
     */
    WechatOpenMember getByMemberIdAndDeployType( String memberId, Integer deployType);
}
